package exception;
/**
 * java异常处理机制
 *
 * 基本语法:
 * try{
 *     ...(A计划)
 * }catch(XXXException e){
 *     针对try中出现XXXException的B计划
 * }
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了");

        try {
            String line = "";
            System.out.println(line.length());
            System.out.println(line.charAt(2));
            System.out.println(Integer.parseInt(line));
            //        }catch(NullPointerException e){
//            //1将异常信息输出或记录日志
//            //2针对该异常的补救措施(B计划)
//            System.out.println("出现了空指针,并且解决了");
//
//        //catch可以定义多个,针对try中不同异常有不同处理方式时要分别捕获
//        }catch(StringIndexOutOfBoundsException e) {
//            System.out.println("出现了字符串下标越界并解决了");

        /*
            如果几种异常需要使用同一种解决办法时,可以合并到一个catch中进行处理
         */
        }catch(NullPointerException|StringIndexOutOfBoundsException e){
            System.out.println("出现空指针或下标越界的处理办法");

            //可以捕获一个超类型异常,针对该异常的子类型异常都可以被其处理
        }catch(Exception e){
            System.out.println("反正就是出了个错");
        }

        System.out.println("程序结束");
    }
}
